module.exports = {
  root: true,
  plugins: [ 'stylelint-order' ],
  extends: [ 'stylelint-config-standard', 'stylelint-config-prettier' ],
  customSyntax: 'postcss-html',
  rules: {
    'number-leading-zero': false,
    'alpha-value-notation': false,
    'color-function-notation': false,
    'no-eol-whitespace': false,
    'function-no-unknown': null,
    'selector-class-pattern': null,
    'selector-pseudo-class-no-unknown': [
      true,
      {
        ignorePseudoClasses: [ 'global' ]
      }
    ],
    'selector-pseudo-element-no-unknown': [
      true,
      {
        ignorePseudoElements: [ 'v-deep' ]
      }
    ],
    'at-rule-no-unknown': [
      true,
      {
        ignoreAtRules: [
          'tailwind',
          'apply',
          'variants',
          'responsive',
          'screen',
          'function',
          'if',
          'each',
          'include',
          'mixin'
        ]
      }
    ],
    'no-empty-source': null,
    'string-quotes': null,
    'string-quotes': null,
    'named-grid-areas-no-invalid': null,
    'unicode-bom': 'never',
    'no-descending-specificity': null,
    'font-family-no-missing-generic-family-keyword': null,
    'declaration-colon-space-after': 'always-single-line',
    'declaration-colon-space-before': 'never',
    // 'declaration-block-trailing-semicolon': 'always',
    'rule-empty-line-before': [
      'always',
      {
        ignore: [ 'after-comment', 'first-nested' ]
      }
    ],
    'unit-no-unknown': [ true, { ignoreUnits: [ 'rpx' ] } ],
    'order/order': [
      [
        'dollar-variables',
        'custom-properties',
        'at-rules',
        'declarations',
        {
          type: 'at-rule',
          name: 'supports'
        },
        {
          type: 'at-rule',
          name: 'media'
        },
        'rules'
      ],
      { severity: 'warning' }
    ]
  },
  ignoreFiles: [ '**/*.js', '**/*.jsx', '**/*.tsx', '**/*.ts' ],
  overrides: [
    {
      files: [ '*.vue', '**/*.vue', '**/*.ts', '**/*.tsx', '*.html', '**/*.html' ],
      extends: [ 'stylelint-config-recommended', 'stylelint-config-html' ],
      rules: {
        'keyframes-name-pattern': null,
        'selector-pseudo-class-no-unknown': [
          true,
          {
            ignorePseudoClasses: [ 'deep', 'global' ]
          }
        ],
        'selector-pseudo-element-no-unknown': [
          true,
          {
            ignorePseudoElements: [ 'v-deep', 'v-global', 'v-slotted' ]
          }
        ]
      }
    },
    {
      files: [ '*.less', '**/*.less' ],
      customSyntax: 'postcss-less',
      extends: [ 'stylelint-config-standard', 'stylelint-config-recommended-vue' ]
    }
  ]
}
